From 007713c0ba62ab1d0497f593fc621a271521f53d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 14 Jan 2020 22:29:56 -0500 Subject: [PATCH] css: Add a matcher type enum For now, this just replaces the is_any boolean by a type field in the class. It will be used in future commits. --- gtk/gtkcssmatcher.c | 16 ++++++++-------- gtk/gtkcssmatcherprivate.h | 11 +++++++++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/gtk/gtkcssmatcher.c b/gtk/gtkcssmatcher.c index 6329029589..8665d9f2a1 100644 --- a/gtk/gtkcssmatcher.c +++ b/gtk/gtkcssmatcher.c @@ -159,14 +159,14 @@ gtk_css_matcher_widget_path_has_position (const GtkCssMatcher *matcher, } static const GtkCssMatcherClass GTK_CSS_MATCHER_WIDGET_PATH = { + GTK_CSS_MATCHER_TYPE_WIDGET_PATH, gtk_css_matcher_widget_path_get_parent, gtk_css_matcher_widget_path_get_previous, gtk_css_matcher_widget_path_get_state, gtk_css_matcher_widget_path_has_name, gtk_css_matcher_widget_path_has_class, gtk_css_matcher_widget_path_has_id, - gtk_css_matcher_widget_path_has_position, - FALSE + gtk_css_matcher_widget_path_has_position }; gboolean @@ -335,14 +335,14 @@ gtk_css_matcher_node_has_position (const GtkCssMatcher *matcher, } static const GtkCssMatcherClass GTK_CSS_MATCHER_NODE = { + GTK_CSS_MATCHER_TYPE_NODE, gtk_css_matcher_node_get_parent, gtk_css_matcher_node_get_previous, gtk_css_matcher_node_get_state, gtk_css_matcher_node_has_name, gtk_css_matcher_node_has_class, gtk_css_matcher_node_has_id, - gtk_css_matcher_node_has_position, - FALSE + gtk_css_matcher_node_has_position }; void @@ -430,14 +430,14 @@ gtk_css_matcher_any_has_position (const GtkCssMatcher *matcher, } static const GtkCssMatcherClass GTK_CSS_MATCHER_ANY = { + GTK_CSS_MATCHER_TYPE_ANY, gtk_css_matcher_any_get_parent, gtk_css_matcher_any_get_previous, gtk_css_matcher_any_get_state, gtk_css_matcher_any_has_name, gtk_css_matcher_any_has_class, gtk_css_matcher_any_has_id, - gtk_css_matcher_any_has_position, - TRUE + gtk_css_matcher_any_has_position }; void @@ -518,14 +518,14 @@ gtk_css_matcher_superset_has_position (const GtkCssMatcher *matcher, } static const GtkCssMatcherClass GTK_CSS_MATCHER_SUPERSET = { + GTK_CSS_MATCHER_TYPE_SUPERSET, gtk_css_matcher_superset_get_parent, gtk_css_matcher_superset_get_previous, gtk_css_matcher_superset_get_state, gtk_css_matcher_superset_has_name, gtk_css_matcher_superset_has_class, gtk_css_matcher_superset_has_id, - gtk_css_matcher_superset_has_position, - FALSE + gtk_css_matcher_superset_has_position }; void diff --git a/gtk/gtkcssmatcherprivate.h b/gtk/gtkcssmatcherprivate.h index 4be2b3ff64..2a211ec424 100644 --- a/gtk/gtkcssmatcherprivate.h +++ b/gtk/gtkcssmatcherprivate.h @@ -29,7 +29,15 @@ typedef struct _GtkCssMatcherSuperset GtkCssMatcherSuperset; typedef struct _GtkCssMatcherWidgetPath GtkCssMatcherWidgetPath; typedef struct _GtkCssMatcherClass GtkCssMatcherClass; +typedef enum { + GTK_CSS_MATCHER_TYPE_NODE, + GTK_CSS_MATCHER_TYPE_WIDGET_PATH, + GTK_CSS_MATCHER_TYPE_ANY, + GTK_CSS_MATCHER_TYPE_SUPERSET +} GtkCssMatcherType; + struct _GtkCssMatcherClass { + GtkCssMatcherType type; gboolean (* get_parent) (GtkCssMatcher *matcher, const GtkCssMatcher *child); gboolean (* get_previous) (GtkCssMatcher *matcher, @@ -46,7 +54,6 @@ struct _GtkCssMatcherClass { gboolean forward, int a, int b); - gboolean is_any; }; struct _GtkCssMatcherWidgetPath { @@ -142,7 +149,7 @@ _gtk_css_matcher_has_position (const GtkCssMatcher *matcher, static inline gboolean _gtk_css_matcher_matches_any (const GtkCssMatcher *matcher) { - return matcher->klass->is_any; + return matcher->klass->type == GTK_CSS_MATCHER_TYPE_ANY; } -- 2.30.2